/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tesoreria.bc;

import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.colegiatura.be.TipoColegiado;
import org.cip.esymons.tesoreria.be.EnumEstadoVotacionColegiado;
import org.cip.esymons.tesoreria.be.ProcesoElectoral;
import org.cip.esymons.tesoreria.be.VotacionColegiado;

/**
 *
 * @author Ingrid Capuñay
 */
public class VotacionColegiadoDelegate {

    private VotacionColegiadoFacadeLocal local;

    public VotacionColegiadoDelegate() {
        local = lookupVotacionColegiadoFacade();
    }

    public void create(VotacionColegiado votacionColegiado) {
        local.create(votacionColegiado);
    }

    public void edit(VotacionColegiado votacionColegiado) {
        local.edit(votacionColegiado);
    }

    public void remove(VotacionColegiado votacionColegiado) {
        local.remove(votacionColegiado);
    }

    public VotacionColegiado find(Object id) {
        return local.find(id);
    }

    public List<VotacionColegiado> findAll() {
        return local.findAll();
    }

    public List<VotacionColegiado> numeroVotacionesXcolegiadoSegunEleccionXDNI(String dni, ProcesoElectoral eleccion) {
        return local.numeroVotacionesXcolegiadoSegunEleccionXDNI(dni, eleccion);
    }

    public List<VotacionColegiado> numeroVotacionesXcolegiadoSegunEleccionXCIP(String cip, ProcesoElectoral eleccion) {
        return local.numeroVotacionesXcolegiadoSegunEleccionXCIP(cip, eleccion);

    }

    public List<Colegiado> listaColegiadosNOVOTANTESSegunEleccion(ProcesoElectoral eleccion) {
        return local.listaColegiadosNOVOTANTESSegunEleccion(eleccion);
    }

    public List<Colegiado> listaColegiadosVOTANTESSegunEleccion(ProcesoElectoral eleccion) {
        return local.listaColegiadosVOTANTESSegunEleccion(eleccion);
    }

    public List<VotacionColegiado> VotacionesXColegiado(Colegiado colegiadoAConsultar) {
        return local.VotacionesXColegiado(colegiadoAConsultar);
    }

    public List<Colegiado> listaColegiadosVOTANTESxEleccionYtipoCole(ProcesoElectoral eleccion, TipoColegiado tipoCole) {
        return local.listaColegiadosVOTANTESxEleccionYtipoCole(eleccion, tipoCole);
    }

    public List<VotacionColegiado> devuelveVotacionesDeColegiadosConESTADOAPTOSAntesCerrarVotacion(ProcesoElectoral eleccion) {
        return local.devuelveVotacionesDeColegiadosConESTADOAPTOSAntesCerrarVotacion(eleccion);
    }

    public boolean tieneDeudaPorMultasCuotas(Colegiado cole, Date fecha) {
        return local.tieneDeudaPorMultasCuotas(cole, fecha);
    }

    public Colegiado buscaSiColegiadoEstaAptoParaVotarPorDNI(String dni, ProcesoElectoral elec) {
        return local.buscaSiColegiadoEstaAptoParaVotarPorDNI(dni, elec);
    }

    public void cerrarVotacion(ProcesoElectoral procesoElectoralParaVotacion) {
        local.cerrarVotacion(procesoElectoralParaVotacion);
    }

    public VotacionColegiado buscaSiColegiadoEstaAptoParaVotarPorCIP(String cip, ProcesoElectoral elec) {
        return local.buscaSiColegiadoEstaAptoParaVotarPorCIP(cip, elec);
    }

    public VotacionColegiado encuentraVotacionAptaSegunColegiadoyEleccion(Colegiado coleg, ProcesoElectoral elecc) {
        return local.encuentraVotacionAptaSegunColegiadoyEleccion(coleg, elecc);
    }

    public List<Colegiado> listaColegiadosOMISOSxEleccionYtipoCole(ProcesoElectoral eleccion, TipoColegiado tipoCole) {
        return local.listaColegiadosOMISOSxEleccionYtipoCole(eleccion, tipoCole);
    }

    public Colegiado buscaSiColegiadoEstaOmisoPorDNI(String dni, ProcesoElectoral elec) {
        return local.buscaSiColegiadoEstaOmisoPorDNI(dni, elec);
    }

    public Colegiado buscaSiColegiadoEstaOmisoPorCIP(String cip, ProcesoElectoral elec) {
        return local.buscaSiColegiadoEstaOmisoPorCIP(cip, elec);
    }

    public Colegiado buscaSiColegiadoEstaExoneradoPorDNI(String dni, ProcesoElectoral elec) {
        return local.buscaSiColegiadoEstaExoneradoPorDNI(dni, elec);
    }

    public Colegiado buscaSiColegiadoEstaExoneradoPorCIP(String cip, ProcesoElectoral elec) {
        return local.buscaSiColegiadoEstaExoneradoPorCIP(cip, elec);
    }

    public Colegiado buscaSiColegiadoVotoPorMesaTranseuntesPorDNI(String dni, ProcesoElectoral elec) {
        return local.buscaSiColegiadoVotoPorMesaTranseuntesPorDNI(dni, elec);
    }

    public Colegiado buscaSiColegiadoVotoPorMesaTranseuntesPorCIP(String cip, ProcesoElectoral elec) {
        return local.buscaSiColegiadoVotoPorMesaTranseuntesPorCIP(cip, elec);
    }

    public Colegiado buscaSiColegiadoPagoMultaPorDNI(String dni, ProcesoElectoral elec) {
        return local.buscaSiColegiadoPagoMultaPorDNI(dni, elec);
    }

    public Colegiado buscaSiColegiadoPagoMultaPorCIP(String cip, ProcesoElectoral elec) {
        return local.buscaSiColegiadoPagoMultaPorCIP(cip, elec);
    }

    public List<VotacionColegiado> listaColegiadosParaReporteDeEleccionesSegunCondiciones(ProcesoElectoral eleccion, TipoColegiado tipoCole, EnumEstadoVotacionColegiado estadoVotacion, Integer tipoOrdenamiento) {
        return local.listaColegiadosParaReporteDeEleccionesSegunCondiciones(eleccion, tipoCole, estadoVotacion, tipoOrdenamiento);
    }
    public List<VotacionColegiado> devuelveColegiadosFaltantesComoMiembroMesa(ProcesoElectoral eleccion){
        return local.devuelveColegiadosFaltantesComoMiembroMesa(eleccion);
    }

    private VotacionColegiadoFacadeLocal lookupVotacionColegiadoFacade() {
        try {
            Context c = new InitialContext();
            return (VotacionColegiadoFacadeLocal) c.lookup("java:comp/env/VotacionColegiadoFacade");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
}
